/* =========================================================================================
PROJET           : c-social-network
NOM DU FICHIER   : controler.c
OBJET            : Module controler (programme principal)
--------------------------------------------------------------------------------------------
DATE DE CREATION : 06/05/10
AUTEUR           : benjamin MICHEL
--------------------------------------------------------------------------------------------
MODIFICATIONS (   n) date - auteur - description )
	1) 06/05/2010 - Benjamin MICHEL - CREATION

========================================================================================= */
/*
Pour faire tourner sous ubuntu
export MALLOC_CHECK_=0
*/

#include <stdio.h>
#include "../../lib/graph/graph.h"
#include "../../controler/controler.h"
#include "../../lib/personne/personne.h"
#include "../../controler/algo.h"
#include "../../lib/entree/entree.h"
#include "../../lib/sortie/sortie.h"

int main(void){
    /*==================================================
	Initialisations
	====================================================*/
	t_graph *graph = NULL;/*graph*/
	t_graph *graph_dual = NULL;/*graph dual*/
	void *fichier_entre = NULL;/*fichier d'entree*/
	void *fichier_sortie = NULL;/*fichier d'entree*/
    int i;/*iteration*/


	/*==================================================
	Exécution
	====================================================*/

    /*====
    Chargement du fichier, dans graph et graph_dual
    ====*/
    /*Ouverture du fichier d'entrée*/
    fichier_entre = f_entree.openf("sample.in");
    /*Charge dans graph et dans graph_dual*/
    load_input(fichier_entre, &graph, &graph_dual);
    /*chargement réussis*/
    printf("\n\tChargement réussis!\n");

    printf("\n\tnombre de pers:%d\n", f_graph.get_taille(graph));

    for(i = 0; i < f_graph.get_taille(graph); i++){
        printf(
            "\n\t\tpers%d : %d",
            i,
            f_personne.get_id(
                f_graph.get_pers_num(graph, i)
            )
        );
    }


    /*Ouverture du fichier de sortie*/
    fichier_sortie = f_sortie.openf("sample.out");

    /*Calcule et ecrit dans le fichier de sortie*/
    calc_output(graph, graph_dual, fichier_sortie);

	read_exec_question(fichier_entre, fichier_sortie, graph);
	
	
    printf("\n\ttest!\n");
    /*====
    Nettoyage et suppression des variables
    ====*/
    /*message d'information*/
    printf("\n\n\tNettoyage en cours ...");
    /*nettoyage du graph*/
    f_graph.destroy(&graph);
    /*nettoyage du graph dual*/
    f_graph.destroy(&graph_dual);
	/*fermer le fichier d'entree*/
	f_entree.closef(fichier_entre);
    /*fermer le fichier de sortie*/
	f_entree.closef(fichier_sortie);
    printf("\n\tNettoyage terminé!\n");

    printf("\nend\n");

	return 0;
}
